return require('packer').startup(function()
  -- Packer can manage itself
  use {'wbthomason/packer.nvim'}
  
     -- gruvbox theme 主题
    use {
        "ellisonleao/gruvbox.nvim",
        requires = {"rktjmp/lush.nvim"}
    }
	-- use dracula theme
 	use 'Mofiqul/dracula.nvim'
	
	-- use material theme
	use 'marko-cerovac/material.nvim'

	-- 缩进插件
	use "lukas-reineke/indent-blankline.nvim"
	-- 代码格式化插件
	use { 'mhartington/formatter.nvim' }

	-- nvim-cmp
	use 'hrsh7th/cmp-nvim-lsp' -- { name = nvim_lsp }
	use 'hrsh7th/cmp-buffer'   -- { name = 'buffer' },
	use 'hrsh7th/cmp-path'     -- { name = 'path' }
	use 'hrsh7th/cmp-cmdline'  -- { name = 'cmdline' }
	use {'hrsh7th/nvim-cmp'}
	-- vsnip
	use 'hrsh7th/cmp-vsnip'    -- { name = 'vsnip' }
	use 'hrsh7th/vim-vsnip'
	use 'rafamadriz/friendly-snippets'
	-- lspkind
	use 'onsails/lspkind-nvim'

	--  bufferline
	use {'akinsho/bufferline.nvim', requires = 'kyazdani42/nvim-web-devicons' , config = [[require('config.bufferline')]]}

	--  mason.nvim 
    use({ "williamboman/mason.nvim" })
    use({"williamboman/mason-lspconfig.nvim", })
    use({"neovim/nvim-lspconfig"})
    
    -- treesitter 
    -- if need update when open Neovim ,place add :  run = ':TSUpdate'
    use { 'nvim-treesitter/nvim-treesitter'}
    -- Coc Nvim
--	use {'neoclide/coc.nvim', branch = 'release'}
	
	-- Nvim Tree 文件树
	use {
		'nvim-tree/nvim-tree.lua',
		config = [[require('config.nvim-tree')]] ,
		requires = {
			'nvim-tree/nvim-web-devicons', -- optional
	},
	config = function()
		require("nvim-tree").setup {}
	end
	}

-- LuaLine  状态栏
	use {
		'nvim-lualine/lualine.nvim',  config = [[require('config.lualine')]] ,
	requires = { 'nvim-tree/nvim-web-devicons', opt = true }
	}
    
  
end)
